
package apphospital;

import java.util.Calendar;
import java.util.Date;
import helper.Helper;
import java.awt.TextArea;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import model.PacienteBean;
import model.PacienteFactory;
public class Main {

   public static void main(String[] args) {
     Calendar calendario = Calendar.getInstance();
     calendario.setTime(new Date());
     String path = "C:\\Users\\marcelo.medeiros\\Documents";
     PacienteFactory pf = new PacienteFactory();
     pf.setPath(path);
     PacienteBean paciente=null;
     String opcoes="1-Cadastrar"+
                   "\n2-Listar\n3-Alterar\n4-Remover\n5-Sair";
     int op=0;
     do{
       op = Integer.parseInt(Helper.lerDados(opcoes));
       switch(op){
           case 1:paciente = cadastrarPaciente();
                  pf.gravarPaciente(paciente);
                  break;  
           case 2:
           listar(pf.carregarArquivo());
           break;
           case 3:int cod = new Integer(Helper.lerDados("Código:"));
                  PacienteBean p = pf.pesquisar(cod);
                  if(p==null) 
                    JOptionPane.showMessageDialog(null,"Código Inexistente");
                  else{
                    PacienteBean novo = alterarPaciente(p);
                    pf.alterar(novo);                    
                  }
                  break;               
           case 4:
           int codigo = new Integer(Helper.lerDados("Código:"));    
           pf.remover(codigo);
           break;    
       }         
     }while(op!=5);   
  }

  private static PacienteBean cadastrarPaciente() {
   PacienteBean paciente = new PacienteBean();
   paciente.setCodigo(new Integer(Helper.lerDados("Código:")));
   paciente.setNome(Helper.lerDados("Nome:"));
   paciente.setSexo(Helper.lerDados("Sexo:").charAt(0));
   paciente.setMotivo(Helper.lerDados("Motivo:"));
   paciente.setTipoSangue(Helper.lerDados("Sangue:"));
   String dt = Helper.lerDados("Data de Nascimento:");
   paciente.setDataNascimento(Helper.toCalendar(dt,"dd/MM/yyyy"));
   return paciente;     
 }
  
 private static void listar(ArrayList<PacienteBean> itens){
   StringBuilder saida = new StringBuilder(); 
   for(PacienteBean p:itens){
     saida.append(p.getCodigo()).append("\n");
     saida.append(p.getNome()).append("\n");
     saida.append(p.getSexo()).append("\n");
     saida.append(p.getMotivo()).append("\n");
     saida.append(p.getTipoSangue()).append("\n");
     saida.append(Helper.formatarData(
                  p.getDataNascimento().getTime(),"dd/MM/yyyy"));     
   }
   TextArea area = new TextArea(saida.toString());
   area.setEditable(false);
   JOptionPane.showMessageDialog(null,area);
 } 
 
 private static PacienteBean alterarPaciente(
                             PacienteBean paciente){
     PacienteBean novo = new PacienteBean();
     novo.setCodigo(paciente.getCodigo());
     novo.setNome(Helper.lerDados("Nome:",paciente.getNome()));
     novo.setMotivo(Helper.lerDados("Motivo:",paciente.getMotivo()));
     novo.setSexo(Helper.lerDados("Sexo:",paciente.getSexo()+"").charAt(0));
     novo.setTipoSangue(Helper.lerDados("Sangue:",paciente.getTipoSangue()));
     String data = Helper.formatarData(
                   paciente.getDataNascimento().getTime(),"dd/MM/yyyy");
     data = Helper.lerDados("Data de Nascimento:", data);
     novo.setDataNascimento(Helper.toCalendar(data,"dd/MM/yyyy"));    
     return novo;
 }
  
  
}
